package src;
import java.io.File;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.FileInputStream;import java.io.InputStreamReader;import java.io.BufferedReader;import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import src.Regexer;
import src.automatons.Automaton;
import src.automatons.DFA;
import src.automatons.NFA;
import src.automatons.NFABuilder;
import src.automatons.Pair;
import src.automatons.State;
import src.automatons.Symbol;
import src.scanner.Scanner;
import src.scanner.Token;

public class DoubleAritmetica implements Scanner {
     public DFA dfa;
     private BufferedReader reader;
     private int currentCharacter;
     private int nextCharacter;
     private int line;
     private ArrayList<String> excepts;
     Set<String> excepted;

     public DoubleAritmetica(File file) throws Exception {
         reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
         consume();
         line = 1;
         dfa = new DFA();
         State s1 = new State("1");
         dfa.addState(s1);
         dfa.changeInitialState(s1);
         State s2 = new State("2");
         dfa.addState(s2);
         s2.setAttached("number");
         dfa.addAcc(s2);
         State s3 = new State("3");
         dfa.addState(s3);
         s3.setAttached("number");
         dfa.addAcc(s3);
         State s4 = new State("4");
         dfa.addState(s4);
         s4.setAttached("number");
         dfa.addAcc(s4);
         State s5 = new State("5");
         dfa.addState(s5);
         s5.setAttached("number");
         dfa.addAcc(s5);
         State s6 = new State("6");
         dfa.addState(s6);
         s6.setAttached("number");
         dfa.addAcc(s6);
         State s7 = new State("7");
         dfa.addState(s7);
         s7.setAttached("number");
         dfa.addAcc(s7);
         State s8 = new State("8");
         dfa.addState(s8);
         s8.setAttached("number");
         dfa.addAcc(s8);
         State s9 = new State("9");
         dfa.addState(s9);
         s9.setAttached("number");
         dfa.addAcc(s9);
         State s10 = new State("10");
         dfa.addState(s10);
         s10.setAttached("number");
         dfa.addAcc(s10);
         State s11 = new State("11");
         dfa.addState(s11);
         s11.setAttached("number");
         dfa.addAcc(s11);
         State s12 = new State("12");
         dfa.addState(s12);
         s12.setAttached("white");
         dfa.addAcc(s12);
         State s13 = new State("13");
         dfa.addState(s13);
         s13.setAttached("white");
         dfa.addAcc(s13);
         State s14 = new State("14");
         dfa.addState(s14);
         s14.setAttached("white");
         dfa.addAcc(s14);
         State s15 = new State("15");
         dfa.addState(s15);
         s15.setAttached("white");
         dfa.addAcc(s15);
         State s16 = new State("16");
         dfa.addState(s16);
         s16.setAttached("white");
         dfa.addAcc(s16);
         State s17 = new State("17");
         dfa.addState(s17);
         s17.setAttached("white");
         dfa.addAcc(s17);
         State s18 = new State("18");
         dfa.addState(s18);
         s18.setAttached("number");
         dfa.addAcc(s18);
         State s19 = new State("19");
         dfa.addState(s19);
         s19.setAttached("number");
         dfa.addAcc(s19);
         State s20 = new State("20");
         dfa.addState(s20);
         s20.setAttached("number");
         dfa.addAcc(s20);
         State s21 = new State("21");
         dfa.addState(s21);
         s21.setAttached("number");
         dfa.addAcc(s21);
         State s22 = new State("22");
         dfa.addState(s22);
         s22.setAttached("number");
         dfa.addAcc(s22);
         State s23 = new State("23");
         dfa.addState(s23);
         s23.setAttached("number");
         dfa.addAcc(s23);
         State s24 = new State("24");
         dfa.addState(s24);
         s24.setAttached("number");
         dfa.addAcc(s24);
         State s25 = new State("25");
         dfa.addState(s25);
         s25.setAttached("number");
         dfa.addAcc(s25);
         State s26 = new State("26");
         dfa.addState(s26);
         s26.setAttached("number");
         dfa.addAcc(s26);
         State s27 = new State("27");
         dfa.addState(s27);
         s27.setAttached("number");
         dfa.addAcc(s27);
         State s28 = new State("28");
         dfa.addState(s28);
         s28.setAttached("decnumber");
         dfa.addAcc(s28);
         State s29 = new State("29");
         dfa.addState(s29);
         s29.setAttached("decnumber");
         dfa.addAcc(s29);
         State s30 = new State("30");
         dfa.addState(s30);
         s30.setAttached("decnumber");
         dfa.addAcc(s30);
         State s31 = new State("31");
         dfa.addState(s31);
         s31.setAttached("decnumber");
         dfa.addAcc(s31);
         State s32 = new State("32");
         dfa.addState(s32);
         s32.setAttached("decnumber");
         dfa.addAcc(s32);
         State s33 = new State("33");
         dfa.addState(s33);
         s33.setAttached("decnumber");
         dfa.addAcc(s33);
         State s34 = new State("34");
         dfa.addState(s34);
         s34.setAttached("decnumber");
         dfa.addAcc(s34);
         State s35 = new State("35");
         dfa.addState(s35);
         s35.setAttached("decnumber");
         dfa.addAcc(s35);
         State s36 = new State("36");
         dfa.addState(s36);
         s36.setAttached("decnumber");
         dfa.addAcc(s36);
         State s37 = new State("37");
         dfa.addState(s37);
         s37.setAttached("decnumber");
         dfa.addAcc(s37);
         State s38 = new State("38");
         dfa.addState(s38);
         s38.setAttached("decnumber");
         dfa.addAcc(s38);
         State s39 = new State("39");
         dfa.addState(s39);
         s39.setAttached("decnumber");
         dfa.addAcc(s39);
         State s40 = new State("40");
         dfa.addState(s40);
         s40.setAttached("decnumber");
         dfa.addAcc(s40);
         State s41 = new State("41");
         dfa.addState(s41);
         s41.setAttached("decnumber");
         dfa.addAcc(s41);
         State s42 = new State("42");
         dfa.addState(s42);
         s42.setAttached("decnumber");
         dfa.addAcc(s42);
         State s43 = new State("43");
         dfa.addState(s43);
         s43.setAttached("decnumber");
         dfa.addAcc(s43);
         State s44 = new State("44");
         dfa.addState(s44);
         s44.setAttached("decnumber");
         dfa.addAcc(s44);
         State s45 = new State("45");
         dfa.addState(s45);
         s45.setAttached("decnumber");
         dfa.addAcc(s45);
         State s46 = new State("46");
         dfa.addState(s46);
         s46.setAttached("decnumber");
         dfa.addAcc(s46);
         State s47 = new State("47");
         dfa.addState(s47);
         s47.setAttached("decnumber");
         dfa.addAcc(s47);
         State s48 = new State("48");
         dfa.addState(s48);
         s48.setAttached("do");
         dfa.addAcc(s48);
         State s49 = new State("49");
         dfa.addState(s49);
         s49.setAttached("while");
         dfa.addAcc(s49);
         State s50 = new State("50");
         dfa.addState(s50);
         State s51 = new State("51");
         dfa.addState(s51);
         State s52 = new State("52");
         dfa.addState(s52);
         State s53 = new State("53");
         dfa.addState(s53);
         State s54 = new State("54");
         dfa.addState(s54);
         State s55 = new State("55");
         dfa.addState(s55);
         dfa.addTr(new Pair(s1, new Symbol((char)949)), s1);
         dfa.addTr(new Pair(s1, new Symbol((char)119)), s50);
         dfa.addTr(new Pair(s1, new Symbol((char)100)), s51);
         dfa.addTr(new Pair(s1, new Symbol((char)48)), s2);
         dfa.addTr(new Pair(s1, new Symbol((char)49)), s3);
         dfa.addTr(new Pair(s1, new Symbol((char)50)), s4);
         dfa.addTr(new Pair(s1, new Symbol((char)51)), s5);
         dfa.addTr(new Pair(s1, new Symbol((char)52)), s6);
         dfa.addTr(new Pair(s1, new Symbol((char)53)), s7);
         dfa.addTr(new Pair(s1, new Symbol((char)54)), s8);
         dfa.addTr(new Pair(s1, new Symbol((char)55)), s9);
         dfa.addTr(new Pair(s1, new Symbol((char)56)), s10);
         dfa.addTr(new Pair(s1, new Symbol((char)57)), s11);
         dfa.addTr(new Pair(s1, new Symbol((char)10)), s12);
         dfa.addTr(new Pair(s1, new Symbol((char)13)), s13);
         dfa.addTr(new Pair(s1, new Symbol((char)9)), s14);
         dfa.addTr(new Pair(s14, new Symbol((char)949)), s14);
         dfa.addTr(new Pair(s14, new Symbol((char)10)), s15);
         dfa.addTr(new Pair(s14, new Symbol((char)13)), s16);
         dfa.addTr(new Pair(s14, new Symbol((char)9)), s17);
         dfa.addTr(new Pair(s17, new Symbol((char)949)), s17);
         dfa.addTr(new Pair(s17, new Symbol((char)10)), s15);
         dfa.addTr(new Pair(s17, new Symbol((char)13)), s16);
         dfa.addTr(new Pair(s17, new Symbol((char)9)), s17);
         dfa.addTr(new Pair(s16, new Symbol((char)949)), s16);
         dfa.addTr(new Pair(s16, new Symbol((char)10)), s15);
         dfa.addTr(new Pair(s16, new Symbol((char)13)), s16);
         dfa.addTr(new Pair(s16, new Symbol((char)9)), s17);
         dfa.addTr(new Pair(s15, new Symbol((char)949)), s15);
         dfa.addTr(new Pair(s15, new Symbol((char)10)), s15);
         dfa.addTr(new Pair(s15, new Symbol((char)13)), s16);
         dfa.addTr(new Pair(s15, new Symbol((char)9)), s17);
         dfa.addTr(new Pair(s13, new Symbol((char)949)), s13);
         dfa.addTr(new Pair(s13, new Symbol((char)10)), s15);
         dfa.addTr(new Pair(s13, new Symbol((char)13)), s16);
         dfa.addTr(new Pair(s13, new Symbol((char)9)), s17);
         dfa.addTr(new Pair(s12, new Symbol((char)949)), s12);
         dfa.addTr(new Pair(s12, new Symbol((char)10)), s15);
         dfa.addTr(new Pair(s12, new Symbol((char)13)), s16);
         dfa.addTr(new Pair(s12, new Symbol((char)9)), s17);
         dfa.addTr(new Pair(s11, new Symbol((char)949)), s11);
         dfa.addTr(new Pair(s11, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s11, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s11, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s11, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s11, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s11, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s11, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s11, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s11, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s11, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s11, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s52, new Symbol((char)949)), s52);
         dfa.addTr(new Pair(s52, new Symbol((char)48)), s28);
         dfa.addTr(new Pair(s52, new Symbol((char)49)), s29);
         dfa.addTr(new Pair(s52, new Symbol((char)50)), s30);
         dfa.addTr(new Pair(s52, new Symbol((char)51)), s31);
         dfa.addTr(new Pair(s52, new Symbol((char)52)), s32);
         dfa.addTr(new Pair(s52, new Symbol((char)53)), s33);
         dfa.addTr(new Pair(s52, new Symbol((char)54)), s34);
         dfa.addTr(new Pair(s52, new Symbol((char)55)), s35);
         dfa.addTr(new Pair(s52, new Symbol((char)56)), s36);
         dfa.addTr(new Pair(s52, new Symbol((char)57)), s37);
         dfa.addTr(new Pair(s37, new Symbol((char)949)), s37);
         dfa.addTr(new Pair(s37, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s37, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s37, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s37, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s37, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s37, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s37, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s37, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s37, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s37, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s47, new Symbol((char)949)), s47);
         dfa.addTr(new Pair(s47, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s47, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s47, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s47, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s47, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s47, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s47, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s47, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s47, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s47, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s46, new Symbol((char)949)), s46);
         dfa.addTr(new Pair(s46, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s46, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s46, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s46, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s46, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s46, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s46, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s46, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s46, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s46, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s45, new Symbol((char)949)), s45);
         dfa.addTr(new Pair(s45, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s45, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s45, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s45, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s45, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s45, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s45, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s45, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s45, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s45, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s44, new Symbol((char)949)), s44);
         dfa.addTr(new Pair(s44, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s44, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s44, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s44, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s44, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s44, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s44, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s44, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s44, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s44, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s43, new Symbol((char)949)), s43);
         dfa.addTr(new Pair(s43, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s43, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s43, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s43, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s43, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s43, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s43, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s43, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s43, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s43, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s42, new Symbol((char)949)), s42);
         dfa.addTr(new Pair(s42, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s42, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s42, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s42, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s42, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s42, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s42, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s42, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s42, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s42, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s41, new Symbol((char)949)), s41);
         dfa.addTr(new Pair(s41, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s41, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s41, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s41, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s41, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s41, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s41, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s41, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s41, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s41, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s40, new Symbol((char)949)), s40);
         dfa.addTr(new Pair(s40, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s40, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s40, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s40, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s40, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s40, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s40, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s40, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s40, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s40, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s39, new Symbol((char)949)), s39);
         dfa.addTr(new Pair(s39, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s39, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s39, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s39, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s39, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s39, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s39, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s39, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s39, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s39, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s38, new Symbol((char)949)), s38);
         dfa.addTr(new Pair(s38, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s38, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s38, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s38, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s38, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s38, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s38, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s38, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s38, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s38, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s36, new Symbol((char)949)), s36);
         dfa.addTr(new Pair(s36, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s36, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s36, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s36, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s36, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s36, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s36, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s36, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s36, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s36, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s35, new Symbol((char)949)), s35);
         dfa.addTr(new Pair(s35, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s35, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s35, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s35, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s35, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s35, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s35, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s35, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s35, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s35, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s34, new Symbol((char)949)), s34);
         dfa.addTr(new Pair(s34, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s34, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s34, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s34, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s34, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s34, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s34, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s34, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s34, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s34, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s33, new Symbol((char)949)), s33);
         dfa.addTr(new Pair(s33, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s33, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s33, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s33, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s33, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s33, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s33, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s33, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s33, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s33, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s32, new Symbol((char)949)), s32);
         dfa.addTr(new Pair(s32, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s32, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s32, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s32, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s32, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s32, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s32, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s32, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s32, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s32, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s31, new Symbol((char)949)), s31);
         dfa.addTr(new Pair(s31, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s31, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s31, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s31, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s31, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s31, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s31, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s31, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s31, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s31, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s30, new Symbol((char)949)), s30);
         dfa.addTr(new Pair(s30, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s30, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s30, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s30, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s30, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s30, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s30, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s30, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s30, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s30, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s29, new Symbol((char)949)), s29);
         dfa.addTr(new Pair(s29, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s29, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s29, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s29, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s29, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s29, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s29, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s29, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s29, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s29, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s28, new Symbol((char)949)), s28);
         dfa.addTr(new Pair(s28, new Symbol((char)48)), s38);
         dfa.addTr(new Pair(s28, new Symbol((char)49)), s39);
         dfa.addTr(new Pair(s28, new Symbol((char)50)), s40);
         dfa.addTr(new Pair(s28, new Symbol((char)51)), s41);
         dfa.addTr(new Pair(s28, new Symbol((char)52)), s42);
         dfa.addTr(new Pair(s28, new Symbol((char)53)), s43);
         dfa.addTr(new Pair(s28, new Symbol((char)54)), s44);
         dfa.addTr(new Pair(s28, new Symbol((char)55)), s45);
         dfa.addTr(new Pair(s28, new Symbol((char)56)), s46);
         dfa.addTr(new Pair(s28, new Symbol((char)57)), s47);
         dfa.addTr(new Pair(s27, new Symbol((char)949)), s27);
         dfa.addTr(new Pair(s27, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s27, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s27, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s27, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s27, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s27, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s27, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s27, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s27, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s27, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s27, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s26, new Symbol((char)949)), s26);
         dfa.addTr(new Pair(s26, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s26, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s26, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s26, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s26, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s26, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s26, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s26, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s26, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s26, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s26, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s25, new Symbol((char)949)), s25);
         dfa.addTr(new Pair(s25, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s25, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s25, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s25, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s25, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s25, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s25, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s25, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s25, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s25, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s25, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s24, new Symbol((char)949)), s24);
         dfa.addTr(new Pair(s24, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s24, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s24, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s24, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s24, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s24, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s24, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s24, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s24, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s24, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s24, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s23, new Symbol((char)949)), s23);
         dfa.addTr(new Pair(s23, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s23, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s23, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s23, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s23, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s23, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s23, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s23, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s23, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s23, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s23, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s22, new Symbol((char)949)), s22);
         dfa.addTr(new Pair(s22, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s22, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s22, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s22, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s22, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s22, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s22, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s22, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s22, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s22, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s22, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s21, new Symbol((char)949)), s21);
         dfa.addTr(new Pair(s21, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s21, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s21, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s21, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s21, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s21, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s21, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s21, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s21, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s21, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s21, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s20, new Symbol((char)949)), s20);
         dfa.addTr(new Pair(s20, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s20, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s20, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s20, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s20, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s20, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s20, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s20, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s20, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s20, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s20, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s19, new Symbol((char)949)), s19);
         dfa.addTr(new Pair(s19, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s19, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s19, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s19, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s19, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s19, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s19, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s19, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s19, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s19, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s19, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s18, new Symbol((char)949)), s18);
         dfa.addTr(new Pair(s18, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s18, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s18, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s18, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s18, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s18, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s18, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s18, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s18, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s18, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s18, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s10, new Symbol((char)949)), s10);
         dfa.addTr(new Pair(s10, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s10, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s10, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s10, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s10, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s10, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s10, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s10, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s10, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s10, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s10, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s9, new Symbol((char)949)), s9);
         dfa.addTr(new Pair(s9, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s9, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s9, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s9, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s9, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s9, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s9, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s9, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s9, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s9, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s9, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s8, new Symbol((char)949)), s8);
         dfa.addTr(new Pair(s8, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s8, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s8, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s8, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s8, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s8, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s8, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s8, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s8, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s8, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s8, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s7, new Symbol((char)949)), s7);
         dfa.addTr(new Pair(s7, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s7, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s7, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s7, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s7, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s7, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s7, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s7, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s7, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s7, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s7, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s6, new Symbol((char)949)), s6);
         dfa.addTr(new Pair(s6, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s6, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s6, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s6, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s6, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s6, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s6, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s6, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s6, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s6, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s6, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s5, new Symbol((char)949)), s5);
         dfa.addTr(new Pair(s5, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s5, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s5, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s5, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s5, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s5, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s5, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s5, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s5, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s5, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s5, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s4, new Symbol((char)949)), s4);
         dfa.addTr(new Pair(s4, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s4, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s4, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s4, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s4, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s4, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s4, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s4, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s4, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s4, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s4, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s3, new Symbol((char)949)), s3);
         dfa.addTr(new Pair(s3, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s3, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s3, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s3, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s3, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s3, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s3, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s3, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s3, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s3, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s3, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s2, new Symbol((char)949)), s2);
         dfa.addTr(new Pair(s2, new Symbol((char)48)), s18);
         dfa.addTr(new Pair(s2, new Symbol((char)49)), s19);
         dfa.addTr(new Pair(s2, new Symbol((char)50)), s20);
         dfa.addTr(new Pair(s2, new Symbol((char)51)), s21);
         dfa.addTr(new Pair(s2, new Symbol((char)52)), s22);
         dfa.addTr(new Pair(s2, new Symbol((char)53)), s23);
         dfa.addTr(new Pair(s2, new Symbol((char)54)), s24);
         dfa.addTr(new Pair(s2, new Symbol((char)55)), s25);
         dfa.addTr(new Pair(s2, new Symbol((char)56)), s26);
         dfa.addTr(new Pair(s2, new Symbol((char)57)), s27);
         dfa.addTr(new Pair(s2, new Symbol((char)46)), s52);
         dfa.addTr(new Pair(s51, new Symbol((char)949)), s51);
         dfa.addTr(new Pair(s51, new Symbol((char)111)), s48);
         dfa.addTr(new Pair(s48, new Symbol((char)949)), s48);
         dfa.addTr(new Pair(s50, new Symbol((char)949)), s50);
         dfa.addTr(new Pair(s50, new Symbol((char)104)), s53);
         dfa.addTr(new Pair(s53, new Symbol((char)949)), s53);
         dfa.addTr(new Pair(s53, new Symbol((char)105)), s54);
         dfa.addTr(new Pair(s54, new Symbol((char)949)), s54);
         dfa.addTr(new Pair(s54, new Symbol((char)108)), s55);
         dfa.addTr(new Pair(s55, new Symbol((char)949)), s55);
         dfa.addTr(new Pair(s55, new Symbol((char)101)), s49);
         dfa.addTr(new Pair(s49, new Symbol((char)949)), s49);
     }

     @Override     public Token getToken() throws Exception {
         StringBuilder s = new StringBuilder();
         while((dfa.lastState() == null) || (!dfa.lastState().equals(DFA.deadState))) {
             consume();
             if (currentCharacter == (int) '\n') line++;
             if (currentCharacter == -1) return Token.EOF_TOKEN;
             s.append((char)currentCharacter);
             dfa.simulate(s.toString()+((char)nextCharacter));
         }
         if (dfa.lastState().equals(DFA.deadState)) {
             if (dfa.simulate(s.toString())) {
                 return new Token(dfa.lastState().attached(), s.toString());
             }
         }
         throw new Exception("Invalid lexeme");
     }

     private void consume() throws Exception {
         currentCharacter = nextCharacter;
         nextCharacter = reader.read();
     }
     public int line() {
         return line;
     }
}
